package XML;

import modelo.jugador.Jugador;
import modelo.tablero.Ciudad;
import modelo.vehiculos.*;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;



public class LectorJugadorXml extends GeneradorDeMapaXml {
	private Jugador jugador;
	
	
	public LectorJugadorXml(String nombreDelArchivo){
		try{
			SAXBuilder constructor = new SAXBuilder();
			Document doc = constructor.build(nombreDelArchivo);
			Element raiz = doc.getRootElement();
		
			jugador = new Jugador(raiz.getAttributeValue("Nombre"));
			jugador.aumentarMovsEn(Integer.parseInt(raiz.getAttributeValue("Puntaje")));
			jugador.setMaxMov(Integer.parseInt(raiz.getAttributeValue("MovimientosMaximos")));
			jugador.setMovil(crearVehiculo(raiz.getChild("Vehiculo") , jugador));
			
		}catch (Exception e){
			System.out.println(e.getMessage());
		}
	}
	
	private Vehiculo crearVehiculo(Element nodoVehiculo , Jugador jugador ){
		
		String tipoDeVehiculo = nodoVehiculo.getAttributeValue("TipoDeVehiculo");
		Vehiculo nuevoVehiculo;
		Element nodoPosicion = nodoVehiculo.getChild("Posicion");
		int coordenadaX,coordenadaY;
		coordenadaX = Integer.parseInt(nodoPosicion.getAttributeValue("CoordenadaX") );
		coordenadaY = Integer.parseInt(nodoPosicion.getAttributeValue("CoordenadaY") );
		Posicion posicion = new Posicion(coordenadaX , coordenadaY);
		
		Ciudad mapa = crearMapa(nodoVehiculo.getChild("Mapa"));
		
		nuevoVehiculo = new Camioneta(mapa , posicion , jugador);
		if(tipoDeVehiculo.equals("Moto")) nuevoVehiculo = new Moto(mapa , posicion , jugador);
		if(tipoDeVehiculo.equals("Auto")) nuevoVehiculo= new Auto(mapa , posicion , jugador);
		
		return nuevoVehiculo;
		
	}
	
	public Ciudad crearMapa(Element nodoCiudad){
		return super.crearMapa(nodoCiudad);
	
	}
	
	
	public Jugador devolverJugador(){
			
		return jugador;
		
		
	}

}
